using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using JEng_Mark_1.Interfaces;

namespace JEng_Mark_1.Shaders
{
	public class shaderFX_test1Effect : IJEngShader
	{
		public enum Techniques
		{
			Complete,
		}

		private Effect _baseEffect;
		///<summary>
		///Gets the underlying Effect.
		///</summary>
		public Effect BaseEffect
		{
			get { return _baseEffect; }
		}

		private bool _readyToRender = false;
		///<summary>
		///Is the shader ready to be rendered.
		///</summary>
		public bool ReadyToRender
		{
			get { return _readyToRender; }
		}

		#region Effect Parameters

		private EffectParameter _UIColor_4945Param;
		public Vector3 UIColor_4945
		{
			get
			{
				if (_UIColor_4945Param == null)
					throw new Exception("Cannot get value of UIColor_4945; UIColor_4945 EffectParameter is null.");
				return _UIColor_4945Param.GetValueVector3();
			}
			set
			{
				if (_UIColor_4945Param == null)
					throw new Exception("Cannot set value of UIColor_4945; UIColor_4945 EffectParameter is null.");
				_UIColor_4945Param.SetValue(value);
			}
		}

		private EffectParameter _light1DirParam;
		public Vector3 Light1Dir
		{
			get
			{
				if (_light1DirParam == null)
					throw new Exception("Cannot get value of Light1Dir; Light1Dir EffectParameter is null.");
				return _light1DirParam.GetValueVector3();
			}
			set
			{
				if (_light1DirParam == null)
					throw new Exception("Cannot set value of Light1Dir; Light1Dir EffectParameter is null.");
				_light1DirParam.SetValue(value);
			}
		}

		private EffectParameter _light1PosParam;
		public Vector3 Light1Pos
		{
			get
			{
				if (_light1PosParam == null)
					throw new Exception("Cannot get value of Light1Pos; Light1Pos EffectParameter is null.");
				return _light1PosParam.GetValueVector3();
			}
			set
			{
				if (_light1PosParam == null)
					throw new Exception("Cannot set value of Light1Pos; Light1Pos EffectParameter is null.");
				_light1PosParam.SetValue(value);
			}
		}

		private EffectParameter _light1ColorParam;
		public Vector4 Light1Color
		{
			get
			{
				if (_light1ColorParam == null)
					throw new Exception("Cannot get value of Light1Color; Light1Color EffectParameter is null.");
				return _light1ColorParam.GetValueVector4();
			}
			set
			{
				if (_light1ColorParam == null)
					throw new Exception("Cannot set value of Light1Color; Light1Color EffectParameter is null.");
				_light1ColorParam.SetValue(value);
			}
		}

		private EffectParameter _light1AttenuationParam;
		public Vector4 Light1Attenuation
		{
			get
			{
				if (_light1AttenuationParam == null)
					throw new Exception("Cannot get value of Light1Attenuation; Light1Attenuation EffectParameter is null.");
				return _light1AttenuationParam.GetValueVector4();
			}
			set
			{
				if (_light1AttenuationParam == null)
					throw new Exception("Cannot set value of Light1Attenuation; Light1Attenuation EffectParameter is null.");
				_light1AttenuationParam.SetValue(value);
			}
		}

		private EffectParameter _light1HotspotParam;
		public float Light1Hotspot
		{
			get
			{
				if (_light1HotspotParam == null)
					throw new Exception("Cannot get value of Light1Hotspot; Light1Hotspot EffectParameter is null.");
                return _light1HotspotParam.GetValueSingle();
			}
			set
			{
				if (_light1HotspotParam == null)
					throw new Exception("Cannot set value of Light1Hotspot; Light1Hotspot EffectParameter is null.");
				_light1HotspotParam.SetValue(value);
			}
		}

		private EffectParameter _light1FalloffParam;
		public float Light1Falloff
		{
			get
			{
				if (_light1FalloffParam == null)
					throw new Exception("Cannot get value of Light1Falloff; Light1Falloff EffectParameter is null.");
				return _light1FalloffParam.GetValueSingle();
			}
			set
			{
				if (_light1FalloffParam == null)
					throw new Exception("Cannot set value of Light1Falloff; Light1Falloff EffectParameter is null.");
				_light1FalloffParam.SetValue(value);
			}
		}

		private EffectParameter _wvpParam;
		public Matrix Wvp
		{
			get
			{
				if (_wvpParam == null)
					throw new Exception("Cannot get value of Wvp; Wvp EffectParameter is null.");
				return _wvpParam.GetValueMatrix();
			}
			set
			{
				if (_wvpParam == null)
					throw new Exception("Cannot set value of Wvp; Wvp EffectParameter is null.");
				_wvpParam.SetValue(value);
			}
		}

		private EffectParameter _worldIParam;
		public Matrix WorldI
		{
			get
			{
				if (_worldIParam == null)
					throw new Exception("Cannot get value of WorldI; WorldI EffectParameter is null.");
				return _worldIParam.GetValueMatrix();
			}
			set
			{
				if (_worldIParam == null)
					throw new Exception("Cannot set value of WorldI; WorldI EffectParameter is null.");
				_worldIParam.SetValue(value);
			}
		}

		private EffectParameter _worldITParam;
		public Matrix WorldIT
		{
			get
			{
				if (_worldITParam == null)
					throw new Exception("Cannot get value of WorldIT; WorldIT EffectParameter is null.");
				return _worldITParam.GetValueMatrix();
			}
			set
			{
				if (_worldITParam == null)
					throw new Exception("Cannot set value of WorldIT; WorldIT EffectParameter is null.");
				_worldITParam.SetValue(value);
			}
		}

		private EffectParameter _viewInvParam;
		public Matrix ViewInv
		{
			get
			{
				if (_viewInvParam == null)
					throw new Exception("Cannot get value of ViewInv; ViewInv EffectParameter is null.");
				return _viewInvParam.GetValueMatrix();
			}
			set
			{
				if (_viewInvParam == null)
					throw new Exception("Cannot set value of ViewInv; ViewInv EffectParameter is null.");
				_viewInvParam.SetValue(value);
			}
		}

		private EffectParameter _worldParam;
		public Matrix World
		{
			get
			{
				if (_worldParam == null)
					throw new Exception("Cannot get value of World; World EffectParameter is null.");
				return _worldParam.GetValueMatrix();
			}
			set
			{
				if (_worldParam == null)
					throw new Exception("Cannot set value of World; World EffectParameter is null.");
				_worldParam.SetValue(value);
			}
		}

		#endregion

		#region Effect Techniques

		private EffectTechnique _CompleteTechnique;

		#endregion

		#region Initialize Methods

		///<summary>
		///Initializes the Effect from byte code for the given GraphicsDevice.
		///</summary
		///<param name="graphicsDevice">The GraphicsDevice for which the effect is being created.</param>
		public void Initialize(GraphicsDevice graphicsDevice)
		{
			Initialize(graphicsDevice, CompilerOptions.None, null);
		}

		///<summary>
		///Initializes the Effect from byte code for the given GraphicsDevice and CompilerOptions.
		///</summary
		///<param name="graphicsDevice">The GraphicsDevice for which the effect is being created.</param>
		///<param name="compilerOptions">The CompilerOptions to use when creating the effect.</param>
		public void Initialize(GraphicsDevice graphicsDevice, CompilerOptions compilerOptions)
		{
			Initialize(graphicsDevice, compilerOptions, null);
		}

		///<summary>
		///Initializes the Effect from byte code for the given GraphicsDevice, CompilerOptions, and EffectPool.
		///</summary
		///<param name="graphicsDevice">The GraphicsDevice for which the effect is being created.</param>
		///<param name="compilerOptions">The CompilerOptions to use when creating the effect.</param>
		///<param name="effectPools">The EffectPool to use with the effect.</param>
		public void Initialize(GraphicsDevice graphicsDevice, CompilerOptions compilerOptions, EffectPool effectPool)
		{
			_baseEffect = new Effect(graphicsDevice, byteCode, compilerOptions, effectPool);
			_readyToRender = true;

			_UIColor_4945Param = _baseEffect.Parameters["UIColor_4945"];
			_light1DirParam = _baseEffect.Parameters["light1Dir"];
			_light1PosParam = _baseEffect.Parameters["light1Pos"];
			_light1ColorParam = _baseEffect.Parameters["light1Color"];
			_light1AttenuationParam = _baseEffect.Parameters["light1Attenuation"];
			_light1HotspotParam = _baseEffect.Parameters["light1Hotspot"];
			_light1FalloffParam = _baseEffect.Parameters["light1Falloff"];
			_wvpParam = _baseEffect.Parameters["wvp"];
			_worldIParam = _baseEffect.Parameters["worldI"];
			_worldITParam = _baseEffect.Parameters["worldIT"];
			_viewInvParam = _baseEffect.Parameters["viewInv"];
			_worldParam = _baseEffect.Parameters["world"];

			_CompleteTechnique = _baseEffect.Techniques["Complete"];
		}

		#endregion

		///<summary>
		///Sets the current technique for the effect.
		///</summary>
		///<param name="technique">The technique to use for the current technique.</param>
		public void SetCurrentTechnique(shaderFX_test1Effect.Techniques technique)
		{
			switch (technique)
			{
				case shaderFX_test1Effect.Techniques.Complete:
					_baseEffect.CurrentTechnique = _CompleteTechnique;
					break;

			}
		}

		#region Compiled Byte Code

		#if XBOX
		static readonly byte[] byteCode = { 1,9,255,254,72,9,0,0,0,0,0,0,3,0,0,0,1,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,142,128,128,60,142,128,128,60,235,226,98,63,1,0,0,0,4,0,0,0,4,0,0,0,68,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,2,0,0,0,4,0,0,0,4,0,0,0,104,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,13,0,0,0,85,73,67,111,108,111,114,95,52,57,52,53,0,37,236,4,3,0,0,0,1,0,0,0,76,1,0,0,92,1,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,3,0,0,0,4,0,0,0,4,0,0,0,204,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,4,0,0,0,4,0,0,0,4,0,0,0,240,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,79,98,106,101,99,116,0,0,5,0,0,0,4,0,0,0,4,0,0,0,20,1,0,0,0,0,0,0,0,0,0,0,6,0,0,0,83,112,97,99,101,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,64,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,114,101,102,73,68,0,0,0,10,0,0,0,108,105,103,104,116,49,68,105,114,0,0,0,10,0,0,0,68,105,114,101,99,116,105,111,110,0,0,0,3,0,0,0,1,0,0,0,44,2,0,0,60,2,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,6,0,0,0,4,0,0,0,4,0,0,0,172,1,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,7,0,0,0,4,0,0,0,4,0,0,0,208,1,0,0,0,0,0,0,0,0,0,0,7,0,0,0,79,98,106,101,99,116,0,0,8,0,0,0,4,0,0,0,4,0,0,0,244,1,0,0,0,0,0,0,0,0,0,0,6,0,0,0,83,112,97,99,101,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,32,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,114,101,102,73,68,0,0,0,10,0,0,0,108,105,103,104,116,49,80,111,115,0,0,0,9,0,0,0,80,79,83,73,84,73,79,78,0,0,0,0,3,0,0,0,1,0,0,0,208,2,0,0,224,2,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,1,0,0,0,2,0,0,0,0,0,0,0,152,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,9,0,0,0,4,0,0,0,4,0,0,0,192,2,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,12,0,0,0,108,105,103,104,116,49,67,111,108,111,114,0,11,0,0,0,76,73,71,72,84,67,79,76,79,82,0,0,3,0,0,0,1,0,0,0,116,3,0,0,140,3,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,1,0,0,0,2,0,0,0,0,0,0,0,60,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,10,0,0,0,4,0,0,0,4,0,0,0,100,3,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,18,0,0,0,108,105,103,104,116,49,65,116,116,101,110,117,97,116,105,111,110,0,236,4,12,0,0,0,65,116,116,101,110,117,97,116,105,111,110,0,3,0,0,0,0,0,0,0,20,4,0,0,40,4,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,44,66,1,0,0,0,2,0,0,0,0,0,0,0,220,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,11,0,0,0,4,0,0,0,4,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,14,0,0,0,108,105,103,104,116,49,72,111,116,115,112,111,116,0,0,0,8,0,0,0,72,111,116,83,112,111,116,0,3,0,0,0,0,0,0,0,172,4,0,0,192,4,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,52,66,1,0,0,0,2,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,12,0,0,0,4,0,0,0,4,0,0,0,156,4,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,255,255,14,0,0,0,108,105,103,104,116,49,70,97,108,108,111,102,102,0,0,0,8,0,0,0,70,97,108,108,79,102,102,0,3,0,0,0,2,0,0,0,80,5,0,0,88,5,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,4,0,0,0,64,5,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,138,137,8,4,0,0,0,119,118,112,0,20,0,0,0,87,111,114,108,100,86,105,101,119,80,114,111,106,101,99,116,105,111,110,0,3,0,0,0,2,0,0,0,244,5,0,0,0,6,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,4,0,0,0,4,0,0,0,228,5,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,7,0,0,0,119,111,114,108,100,73,0,0,13,0,0,0,87,111,114,108,100,73,110,118,101,114,115,101,0,0,0,0,3,0,0,0,2,0,0,0,152,6,0,0,164,6,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,4,0,0,0,4,0,0,0,136,6,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,255,255,255,8,0,0,0,119,111,114,108,100,73,84,0,22,0,0,0,87,111,114,108,100,73,110,118,101,114,115,101,84,114,97,110,115,112,111,115,101,0,0,0,3,0,0,0,2,0,0,0,68,7,0,0,80,7,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,4,0,0,0,4,0,0,0,52,7,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,8,0,0,0,118,105,101,119,73,110,118,0,12,0,0,0,86,105,101,119,73,110,118,101,114,115,101,0,3,0,0,0,2,0,0,0,228,7,0,0,240,7,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,4,0,0,0,4,0,0,0,212,7,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,6,0,0,0,119,111,114,108,100,0,0,0,6,0,0,0,87,111,114,108,100,0,0,0,18,0,0,0,16,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,19,0,0,0,15,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,108,105,103,104,116,49,0,0,9,0,0,0,67,111,109,112,108,101,116,101,0,0,0,0,12,0,0,0,1,0,0,0,3,0,0,0,20,0,0,0,4,0,0,0,32,0,0,0,0,0,0,0,2,0,0,0,48,0,0,0,44,0,0,0,84,0,0,0,80,0,0,0,140,0,0,0,168,0,0,0,0,0,0,0,4,0,0,0,184,0,0,0,180,0,0,0,220,0,0,0,216,0,0,0,0,1,0,0,252,0,0,0,36,1,0,0,32,1,0,0,108,1,0,0,136,1,0,0,0,0,0,0,4,0,0,0,152,1,0,0,148,1,0,0,188,1,0,0,184,1,0,0,224,1,0,0,220,1,0,0,4,2,0,0,0,2,0,0,76,2,0,0,104,2,0,0,0,0,0,0,2,0,0,0,124,2,0,0,120,2,0,0,172,2,0,0,168,2,0,0,240,2,0,0,12,3,0,0,0,0,0,0,2,0,0,0,32,3,0,0,28,3,0,0,80,3,0,0,76,3,0,0,156,3,0,0,184,3,0,0,0,0,0,0,2,0,0,0,192,3,0,0,188,3,0,0,240,3,0,0,236,3,0,0,52,4,0,0,80,4,0,0,0,0,0,0,2,0,0,0,88,4,0,0,84,4,0,0,136,4,0,0,132,4,0,0,204,4,0,0,232,4,0,0,0,0,0,0,1,0,0,0,44,5,0,0,40,5,0,0,112,5,0,0,140,5,0,0,0,0,0,0,1,0,0,0,208,5,0,0,204,5,0,0,20,6,0,0,48,6,0,0,0,0,0,0,1,0,0,0,116,6,0,0,112,6,0,0,192,6,0,0,220,6,0,0,0,0,0,0,1,0,0,0,32,7,0,0,28,7,0,0,96,7,0,0,124,7,0,0,0,0,0,0,1,0,0,0,192,7,0,0,188,7,0,0,56,9,0,0,0,0,0,0,1,0,0,0,44,9,0,0,0,0,0,0,10,0,0,0,146,0,0,0,0,0,0,0,0,8,0,0,252,7,0,0,0,0,0,0,0,0,0,0,24,8,0,0,20,8,0,0,8,0,0,0,0,0,0,0,56,8,0,0,52,8,0,0,2,0,0,0,0,0,0,0,88,8,0,0,84,8,0,0,3,0,0,0,0,0,0,0,120,8,0,0,116,8,0,0,13,0,0,0,0,0,0,0,152,8,0,0,148,8,0,0,6,0,0,0,0,0,0,0,184,8,0,0,180,8,0,0,7,0,0,0,0,0,0,0,216,8,0,0,212,8,0,0,4,0,0,0,0,0,0,0,248,8,0,0,244,8,0,0,147,0,0,0,0,0,0,0,24,9,0,0,20,9,0,0,17,0,0,0,2,0,0,0,17,0,0,0,5,0,0,0,78,111,110,101,0,0,0,224,16,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,15,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,14,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,13,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,12,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,11,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,10,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,9,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,8,0,0,0,6,0,0,0,87,111,114,108,100,0,0,0,7,0,0,0,11,0,0,0,80,111,105,110,116,76,105,103,104,116,0,111,6,0,0,0,17,0,0,0,76,105,103,104,116,32,49,32,80,111,115,105,116,105,111,110,0,112,111,115,5,0,0,0,6,0,0,0,87,111,114,108,100,0,101,102,4,0,0,0,12,0,0,0,84,97,114,103,101,116,76,105,103,104,116,0,3,0,0,0,18,0,0,0,76,105,103,104,116,32,49,32,68,105,114,101,99,116,105,111,110,0,110,0,2,0,0,0,6,0,0,0,67,111,108,111,114,0,0,128,1,0,0,0,6,0,0,0,67,111,108,111,114,0,0,128,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,0,0,0,0,124,1,0,0,0,2,255,255,254,255,56,0,67,84,65,66,28,0,0,0,167,0,0,0,0,2,255,255,2,0,0,0,28,0,0,0,0,0,0,0,160,0,0,0,68,0,0,0,2,0,0,0,1,0,0,0,84,0,0,0,100,0,0,0,116,0,0,0,2,0,1,0,1,0,0,0,128,0,0,0,144,0,0,0,85,73,67,111,108,111,114,95,52,57,52,53,0,171,171,171,1,0,3,0,1,0,3,0,1,0,0,0,0,0,0,0,142,128,128,60,142,128,128,60,235,226,98,63,0,0,0,0,108,105,103,104,116,49,67,111,108,111,114,0,1,0,3,0,1,0,4,0,1,0,0,0,0,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,112,115,95,50,95,48,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,171,171,171,254,255,1,0,80,82,69,83,81,0,0,5,2,0,15,160,0,0,128,63,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,2,0,0,0,128,0,0,7,176,8,0,0,3,0,0,1,128,0,0,228,176,0,0,228,176,7,0,0,2,0,0,8,128,0,0,0,128,5,0,0,3,0,0,24,128,0,0,255,128,0,0,170,176,5,0,0,3,0,0,7,128,0,0,255,128,0,0,228,160,5,0,0,3,0,0,7,128,0,0,228,128,1,0,228,160,1,0,0,2,0,0,8,128,2,0,0,160,1,0,0,2,0,8,15,128,0,0,228,128,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,92,2,0,0,0,2,254,255,254,255,78,0,67,84,65,66,28,0,0,0,2,1,0,0,0,2,254,255,4,0,0,0,28,0,0,0,0,0,0,0,251,0,0,0,108,0,0,0,2,0,10,0,1,0,0,0,120,0,0,0,136,0,0,0,152,0,0,0,2,0,7,0,3,0,0,0,160,0,0,0,176,0,0,0,240,0,0,0,2,0,4,0,3,0,0,0,160,0,0,0,176,0,0,0,247,0,0,0,2,0,0,0,4,0,0,0,160,0,0,0,176,0,0,0,108,105,103,104,116,49,80,111,115,0,171,171,1,0,3,0,1,0,3,0,1,0,0,0,0,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,0,0,0,0,119,111,114,108,100,0,171,171,3,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,111,114,108,100,73,0,119,118,112,0,118,115,95,50,95,48,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,254,255,1,0,80,82,69,83,31,0,0,2,0,0,0,128,0,0,15,144,31,0,0,2,6,0,0,128,1,0,15,144,31,0,0,2,7,0,0,128,2,0,15,144,31,0,0,2,3,0,0,128,3,0,15,144,9,0,0,3,0,0,1,128,0,0,228,144,7,0,228,160,9,0,0,3,0,0,2,128,0,0,228,144,8,0,228,160,9,0,0,3,0,0,4,128,0,0,228,144,9,0,228,160,2,0,0,3,1,0,7,128,0,0,228,129,10,0,228,160,8,0,0,3,0,0,1,128,1,0,228,128,4,0,228,160,8,0,0,3,0,0,2,128,1,0,228,128,5,0,228,160,8,0,0,3,0,0,4,128,1,0,228,128,6,0,228,160,8,0,0,3,0,0,1,224,1,0,228,144,0,0,228,128,8,0,0,3,0,0,2,224,2,0,228,145,0,0,228,128,8,0,0,3,0,0,4,224,3,0,228,144,0,0,228,128,9,0,0,3,0,0,1,192,0,0,228,144,0,0,228,160,9,0,0,3,0,0,2,192,0,0,228,144,1,0,228,160,9,0,0,3,0,0,4,192,0,0,228,144,2,0,228,160,9,0,0,3,0,0,8,192,0,0,228,144,3,0,228,160,255,255,0,0, };
		#else
		static readonly byte[] byteCode = { 1,9,255,254,72,9,0,0,0,0,0,0,3,0,0,0,1,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,142,128,128,60,142,128,128,60,235,226,98,63,1,0,0,0,4,0,0,0,4,0,0,0,68,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,2,0,0,0,4,0,0,0,4,0,0,0,104,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,13,0,0,0,85,73,67,111,108,111,114,95,52,57,52,53,0,0,0,0,3,0,0,0,1,0,0,0,76,1,0,0,92,1,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,3,0,0,0,4,0,0,0,4,0,0,0,204,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,4,0,0,0,4,0,0,0,4,0,0,0,240,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,79,98,106,101,99,116,0,0,5,0,0,0,4,0,0,0,4,0,0,0,20,1,0,0,0,0,0,0,0,0,0,0,6,0,0,0,83,112,97,99,101,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,64,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,114,101,102,73,68,0,0,0,10,0,0,0,108,105,103,104,116,49,68,105,114,0,0,0,10,0,0,0,68,105,114,101,99,116,105,111,110,0,0,0,3,0,0,0,1,0,0,0,44,2,0,0,60,2,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,6,0,0,0,4,0,0,0,4,0,0,0,172,1,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,7,0,0,0,4,0,0,0,4,0,0,0,208,1,0,0,0,0,0,0,0,0,0,0,7,0,0,0,79,98,106,101,99,116,0,0,8,0,0,0,4,0,0,0,4,0,0,0,244,1,0,0,0,0,0,0,0,0,0,0,6,0,0,0,83,112,97,99,101,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,32,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,114,101,102,73,68,0,0,0,10,0,0,0,108,105,103,104,116,49,80,111,115,0,0,0,9,0,0,0,80,79,83,73,84,73,79,78,0,0,0,0,3,0,0,0,1,0,0,0,208,2,0,0,224,2,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,1,0,0,0,2,0,0,0,0,0,0,0,152,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,9,0,0,0,4,0,0,0,4,0,0,0,192,2,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,12,0,0,0,108,105,103,104,116,49,67,111,108,111,114,0,11,0,0,0,76,73,71,72,84,67,79,76,79,82,0,0,3,0,0,0,1,0,0,0,116,3,0,0,140,3,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,1,0,0,0,2,0,0,0,0,0,0,0,60,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,10,0,0,0,4,0,0,0,4,0,0,0,100,3,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,18,0,0,0,108,105,103,104,116,49,65,116,116,101,110,117,97,116,105,111,110,0,0,0,12,0,0,0,65,116,116,101,110,117,97,116,105,111,110,0,3,0,0,0,0,0,0,0,20,4,0,0,40,4,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,44,66,1,0,0,0,2,0,0,0,0,0,0,0,220,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,11,0,0,0,4,0,0,0,4,0,0,0,4,4,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,14,0,0,0,108,105,103,104,116,49,72,111,116,115,112,111,116,0,0,0,8,0,0,0,72,111,116,83,112,111,116,0,3,0,0,0,0,0,0,0,172,4,0,0,192,4,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,52,66,1,0,0,0,2,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,12,0,0,0,4,0,0,0,4,0,0,0,156,4,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,14,0,0,0,108,105,103,104,116,49,70,97,108,108,111,102,102,0,0,0,8,0,0,0,70,97,108,108,79,102,102,0,3,0,0,0,2,0,0,0,80,5,0,0,88,5,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,4,0,0,0,64,5,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,4,0,0,0,119,118,112,0,20,0,0,0,87,111,114,108,100,86,105,101,119,80,114,111,106,101,99,116,105,111,110,0,3,0,0,0,2,0,0,0,244,5,0,0,0,6,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,4,0,0,0,4,0,0,0,228,5,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,7,0,0,0,119,111,114,108,100,73,0,0,13,0,0,0,87,111,114,108,100,73,110,118,101,114,115,101,0,0,0,0,3,0,0,0,2,0,0,0,152,6,0,0,164,6,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,4,0,0,0,4,0,0,0,136,6,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,8,0,0,0,119,111,114,108,100,73,84,0,22,0,0,0,87,111,114,108,100,73,110,118,101,114,115,101,84,114,97,110,115,112,111,115,101,0,0,0,3,0,0,0,2,0,0,0,68,7,0,0,80,7,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,4,0,0,0,4,0,0,0,52,7,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,8,0,0,0,118,105,101,119,73,110,118,0,12,0,0,0,86,105,101,119,73,110,118,101,114,115,101,0,3,0,0,0,2,0,0,0,228,7,0,0,240,7,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,4,0,0,0,4,0,0,0,212,7,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,6,0,0,0,119,111,114,108,100,0,0,0,6,0,0,0,87,111,114,108,100,0,0,0,18,0,0,0,16,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,19,0,0,0,15,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,108,105,103,104,116,49,0,0,9,0,0,0,67,111,109,112,108,101,116,101,0,0,0,0,12,0,0,0,1,0,0,0,3,0,0,0,20,0,0,0,4,0,0,0,32,0,0,0,0,0,0,0,2,0,0,0,48,0,0,0,44,0,0,0,84,0,0,0,80,0,0,0,140,0,0,0,168,0,0,0,0,0,0,0,4,0,0,0,184,0,0,0,180,0,0,0,220,0,0,0,216,0,0,0,0,1,0,0,252,0,0,0,36,1,0,0,32,1,0,0,108,1,0,0,136,1,0,0,0,0,0,0,4,0,0,0,152,1,0,0,148,1,0,0,188,1,0,0,184,1,0,0,224,1,0,0,220,1,0,0,4,2,0,0,0,2,0,0,76,2,0,0,104,2,0,0,0,0,0,0,2,0,0,0,124,2,0,0,120,2,0,0,172,2,0,0,168,2,0,0,240,2,0,0,12,3,0,0,0,0,0,0,2,0,0,0,32,3,0,0,28,3,0,0,80,3,0,0,76,3,0,0,156,3,0,0,184,3,0,0,0,0,0,0,2,0,0,0,192,3,0,0,188,3,0,0,240,3,0,0,236,3,0,0,52,4,0,0,80,4,0,0,0,0,0,0,2,0,0,0,88,4,0,0,84,4,0,0,136,4,0,0,132,4,0,0,204,4,0,0,232,4,0,0,0,0,0,0,1,0,0,0,44,5,0,0,40,5,0,0,112,5,0,0,140,5,0,0,0,0,0,0,1,0,0,0,208,5,0,0,204,5,0,0,20,6,0,0,48,6,0,0,0,0,0,0,1,0,0,0,116,6,0,0,112,6,0,0,192,6,0,0,220,6,0,0,0,0,0,0,1,0,0,0,32,7,0,0,28,7,0,0,96,7,0,0,124,7,0,0,0,0,0,0,1,0,0,0,192,7,0,0,188,7,0,0,56,9,0,0,0,0,0,0,1,0,0,0,44,9,0,0,0,0,0,0,10,0,0,0,146,0,0,0,0,0,0,0,0,8,0,0,252,7,0,0,0,0,0,0,0,0,0,0,24,8,0,0,20,8,0,0,8,0,0,0,0,0,0,0,56,8,0,0,52,8,0,0,2,0,0,0,0,0,0,0,88,8,0,0,84,8,0,0,3,0,0,0,0,0,0,0,120,8,0,0,116,8,0,0,13,0,0,0,0,0,0,0,152,8,0,0,148,8,0,0,6,0,0,0,0,0,0,0,184,8,0,0,180,8,0,0,7,0,0,0,0,0,0,0,216,8,0,0,212,8,0,0,4,0,0,0,0,0,0,0,248,8,0,0,244,8,0,0,147,0,0,0,0,0,0,0,24,9,0,0,20,9,0,0,17,0,0,0,2,0,0,0,17,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,16,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,15,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,14,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,13,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,12,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,11,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,10,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,9,0,0,0,5,0,0,0,78,111,110,101,0,0,0,0,8,0,0,0,6,0,0,0,87,111,114,108,100,0,0,0,7,0,0,0,11,0,0,0,80,111,105,110,116,76,105,103,104,116,0,0,6,0,0,0,17,0,0,0,76,105,103,104,116,32,49,32,80,111,115,105,116,105,111,110,0,0,0,0,5,0,0,0,6,0,0,0,87,111,114,108,100,0,0,0,4,0,0,0,12,0,0,0,84,97,114,103,101,116,76,105,103,104,116,0,3,0,0,0,18,0,0,0,76,105,103,104,116,32,49,32,68,105,114,101,99,116,105,111,110,0,0,0,2,0,0,0,6,0,0,0,67,111,108,111,114,0,0,0,1,0,0,0,6,0,0,0,67,111,108,111,114,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,0,0,0,0,124,1,0,0,0,2,255,255,254,255,56,0,67,84,65,66,28,0,0,0,167,0,0,0,0,2,255,255,2,0,0,0,28,0,0,0,0,0,0,0,160,0,0,0,68,0,0,0,2,0,0,0,1,0,0,0,84,0,0,0,100,0,0,0,116,0,0,0,2,0,1,0,1,0,0,0,128,0,0,0,144,0,0,0,85,73,67,111,108,111,114,95,52,57,52,53,0,171,171,171,1,0,3,0,1,0,3,0,1,0,0,0,0,0,0,0,142,128,128,60,142,128,128,60,235,226,98,63,0,0,0,0,108,105,103,104,116,49,67,111,108,111,114,0,1,0,3,0,1,0,4,0,1,0,0,0,0,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,112,115,95,50,95,48,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,171,171,171,254,255,1,0,80,82,69,83,81,0,0,5,2,0,15,160,0,0,128,63,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,2,0,0,0,128,0,0,7,176,8,0,0,3,0,0,1,128,0,0,228,176,0,0,228,176,7,0,0,2,0,0,8,128,0,0,0,128,5,0,0,3,0,0,24,128,0,0,255,128,0,0,170,176,5,0,0,3,0,0,7,128,0,0,255,128,0,0,228,160,5,0,0,3,0,0,7,128,0,0,228,128,1,0,228,160,1,0,0,2,0,0,8,128,2,0,0,160,1,0,0,2,0,8,15,128,0,0,228,128,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,92,2,0,0,0,2,254,255,254,255,78,0,67,84,65,66,28,0,0,0,2,1,0,0,0,2,254,255,4,0,0,0,28,0,0,0,0,0,0,0,251,0,0,0,108,0,0,0,2,0,10,0,1,0,0,0,120,0,0,0,136,0,0,0,152,0,0,0,2,0,7,0,3,0,0,0,160,0,0,0,176,0,0,0,240,0,0,0,2,0,4,0,3,0,0,0,160,0,0,0,176,0,0,0,247,0,0,0,2,0,0,0,4,0,0,0,160,0,0,0,176,0,0,0,108,105,103,104,116,49,80,111,115,0,171,171,1,0,3,0,1,0,3,0,1,0,0,0,0,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,0,0,0,0,119,111,114,108,100,0,171,171,3,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,111,114,108,100,73,0,119,118,112,0,118,115,95,50,95,48,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,254,255,1,0,80,82,69,83,31,0,0,2,0,0,0,128,0,0,15,144,31,0,0,2,6,0,0,128,1,0,15,144,31,0,0,2,7,0,0,128,2,0,15,144,31,0,0,2,3,0,0,128,3,0,15,144,9,0,0,3,0,0,1,128,0,0,228,144,7,0,228,160,9,0,0,3,0,0,2,128,0,0,228,144,8,0,228,160,9,0,0,3,0,0,4,128,0,0,228,144,9,0,228,160,2,0,0,3,1,0,7,128,0,0,228,129,10,0,228,160,8,0,0,3,0,0,1,128,1,0,228,128,4,0,228,160,8,0,0,3,0,0,2,128,1,0,228,128,5,0,228,160,8,0,0,3,0,0,4,128,1,0,228,128,6,0,228,160,8,0,0,3,0,0,1,224,1,0,228,144,0,0,228,128,8,0,0,3,0,0,2,224,2,0,228,145,0,0,228,128,8,0,0,3,0,0,4,224,3,0,228,144,0,0,228,128,9,0,0,3,0,0,1,192,0,0,228,144,0,0,228,160,9,0,0,3,0,0,2,192,0,0,228,144,1,0,228,160,9,0,0,3,0,0,4,192,0,0,228,144,2,0,228,160,9,0,0,3,0,0,8,192,0,0,228,144,3,0,228,160,255,255,0,0, };
		#endif

		#endregion
	}
}
